home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue60 / Construc / getname.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-07-05  |  882 b   |  29 lines

  1. function TServerCollection.GetBalancedName: string;
  2. var
  3.   OldestTimeStamp: TDateTime;
  4.   OldestServer, GoodCount, i: Integer;
  5.   GoodServers: array of TServerItem;
  6. begin
  7.   GoodCount := 0;
  8.   OldestTimeStamp := Now;
  9.   OldestServer := 0;
  10.   SetLength(GoodServers, Count);
  11.   for i:=0 to Pred(Count) do
  12.   begin
  13.     if (not Items[i].HasFailed) and (Items[i].Enabled) then
  14.     begin
  15.       GoodServers[GoodCount] := Items[i];
  16.       if GoodServers[GoodCount].LastConnectionTimeStamp < OldestTimeStamp then
  17.       begin
  18.         OldestServer := GoodCount;
  19.         OldestTimeStamp := GoodServers[GoodCount].LastConnectionTimeStamp
  20.       end;
  21.       Inc(GoodCount)
  22.     end
  23.   end;
  24.   if GoodCount = 0 then
  25.     raise EBrokerException.CreateRes(@SNoServers);
  26.   GoodServers[OldestServer].LastConnectionTimeStamp := Now;
  27.   Result := GoodServers[OldestServer].ComputerName;
  28. end;
  29.